#ifndef NINTERFACESDATABASE_H
#define NINTERFACESDATABASE_H

class QSqlQuery;
class QString;
class QByteArray;
class QStringList;
class QSqlError;

//объявление интерфейсов


class IUserAuth     // проверка авторизованности
{
public:
    IUserAuth() { }

    //методы!
    virtual QByteArray generateKey(int userId, QByteArray pass) = 0;

    virtual ~IUserAuth() { }
};


class IDatabase             //доступ к данным
{
public:
    IDatabase() { }

    //методы!
    virtual bool doInit(QString path) = 0;      //инициализация БД
    virtual QSqlQuery exec(QString sqlCmd) = 0; //выполнение SQL зароса
    virtual QStringList tables() = 0;           //список таблиц
    virtual QSqlError lastError() = 0;    //последняя ошибка БД

    virtual QByteArray generateAuthKey(int userId, QByteArray pass)=0;  //генерация ключа авторизации

    virtual ~IDatabase() { }
};


#endif
